package com.dynamo.transport.network.practise.bio;


import java.net.Socket;
import java.nio.channels.Channel;

/**
 * @author duanyimiao
 * @create 2018-10-26 8:01 AM
 * @description Channel处理器，当有新的Channel或有可读的数据，或向Channel写入数据成功，都会触发该方法
 **/
public interface ChannelHandler {
    /**
     * 客户端第一次连接服务端，双方都会各产生一个Channel，进而触发该方法
     * @param channel
     */
    void channelActive(Channel channel);

    /**
     * Channel close时调用
     * @param channel
     */
    void channelInActive(Channel channel);

    /**
     * 当Channel通道有可读数据时触发
     * @param socket
     */
    void channelRead(byte[] bytes,Socket socket);

    /**
     * 当向Channel写入数据成功时触发
     * @param channel
     */
    void channelWrite(Channel channel);
}
